home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™ 1987-1994 / MacHack™ '90 / Source Code ƒ.sea / Source Code ƒ / Modula2 ƒ / DataStack Filer / Read Me, no me! / Read Me, no me!
Encoding:
Text File  |  1990-06-15  |  1.2 KB  |  49 lines  |  [TEXT/MPS ]

  1. with indx then shrink keysArrays. *)
  2.     UpdateCardKeys(stack^^.idKeys^,indx,totFil);
  3.     UpdateCardKeys(stack^^.nameKeys^,indx,totFil);
  4.  
  5.     (* blockmove lastCard over target *)
  6.     BlockMove(last,targ,VAL(LONGINT,stack^^.cardSize));
  7.     
  8.     (* remove lastCard and reduce totFil and local filledCards. *)
  9.     RemoveLastCard(stack);
  10.     END RemoveCard;
  11.  
  12.  
  13. PROCEDURE GetCardIndx(stack:DataStack; id:LONGCARD; name:ARRAY OF CHAR):CARDINAL;
  14. VAR n:CARDINAL;
  15. BEGIN
  16.     dataStackErr := noErr;
  17.     theStack := stack;
  18.     IF id # 0 THEN
  19.         theSearchID := id;
  20.         n := SearchStackByID(1,stack^^.totalFilled);
  21.         IF n = 0 THEN
  22.             dataStackErr := notFound;
  23.             RETURN 0;
  24.             END;
  25.         RETURN stack^^.idKeys^^[n];
  26.         
  27.     ELSIF name[0] # 0C THEN
  28.         theSearchName := ADR(name);
  29.         n := SearchStackByName(1,stack^^.totalFilled);
  30.         IF n = 0 THEN
  31.             dataStackErr := notFound;
  32.             RETURN 0;
  33.             END;
  34.         RETURN stack^^.nameKeys^^[n];
  35.         END;
  36.     dataStackErr := notFound;
  37.     RETURN 0;
  38.     END GetCardIndx;
  39.  
  40. PROCEDURE GetCardID(stack:DataStack; indx:CARDINAL; name:ARRAY OF CHAR):LONGCARD; 
  41. VAR header :HeadPtr;
  42. BEGIN
  43.     dataStackErr := noErr;
  44.     IF indx = 0 THEN
  45.         indx := GetCardIndx(stack,0,name);
  46.         IF indx = 0 THEN RETURN 0; END;
  47.         END;
  48.     header := GetHeaderAddr(stack,indx);
  49.     IF